A virtual machine is a software implementation of a machine (computer) that includes its own operating system (referred to as a guest operating system) and executes application programs. A host computer allocates a certain amount of its resources to each of the virtual machines, and multiplexes its underlying hardware platform among the virtual machines. Each virtual machine is then able to use the allocated resources to execute its guest operating system and applications. The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM), a kernel-based hypervisor, or part of a host operating system. The hypervisor emulates the underlying hardware of the host computer, making the use of the virtual machine transparent to the guest operating system and the user of the computer.
A host computer can run multiple virtual machines simultaneously. Some of the virtual machines may run the same guest operating system. Conventionally, a system administrator of the host computer manually installs a guest operating system on each virtual machine. Manual installation involves running an installation process that requests a series of manual inputs from the system administrator. To install the same guest operating system on multiple virtual machines, a system administrator typically has to repeatedly enter the same series of manual inputs for each virtual machine. Manual installation can be time-consuming and error prone. Thus, there is a need to improve the conventional installation process.